AWS Budgets : クラウドにかかる費用を気にする必要はありません
AWS Budget
AWSバジェットとは何ですか?
自分自身や他のアカウントのコストを管理している場合、支出に制限があり、実際の支出がその制限に近づいたり、超えたりしたときに知りたいと思うものです。このことは、人と自動化されたシステムが設計によってリソースを構築する能力が高いクラウドコンピューティングの文脈では、特に重要です。
AWSバジェットでは、経費を記録するための2つのオプションが用意されています。
AWS Management Consoleでは、消費量が日々どのように変化するかを監視することができますが、AWS Budgetsでは、サインインせずにこのビューを定期的なメールレポートとして提供させることができます。AWS Budgetsは、お客様のAWSリソースのコストと消費量の統計サービスです。AWSのデータは奥が深いため、部門横断的にこのデータを追跡するために様々なBudgetを作成したり、異なるシステムやリソースの種類を掘り下げていくことができます。
Budget超過を検知するために定期的なレポートに頼るのではなく、Budgetアラートを設定して適切な人物に警告したり、アカウントの制限や特定のAWSリソースのシャットダウンなどの自動措置を発動させることができます。
コスト管理のための強固な基盤は、関連する受信者に送信される定期的なレポートとイベント駆動型のアラートの組み合わせです。
AWSバジェットでは、サービス価格だけでなく、リザーブドインスタンスやSavings Planの利用率やカバー率を把握することができます。.
AWSバジェットの作成
コンソールからBudgetを作成する際に起動するAWSセットアップウィザードがあります。ウィザード内の各ページ上部には "Info "リンクがあり、より詳細な手順やAWSのドキュメントにリンクしています。
Budgetアラート」の作成はコンソールでも可能ですが、本ブログではAWS Budgetsで閾値通知付きのBudgetを作成するための簡単なCloudFormationテンプレートをデモしますが、まずはAWS Budgetsを理解しましょう。
Budget アラート
アラートはBudgetsと関連付けられ、Budgetが作成または編集されたときに生成されることができます。これらは、閾値と通知で構成されています。しきい値は、今日の実際の使用量またはBudget期間の予想使用量がしきい値を超えたときに警告を発するかどうかを制御するトリガーを含んでいます。
- Notification: ComparisonOperator: GREATER_THAN NotificationType: ACTUAL Threshold: !Ref FirstThreshold ThresholdType: PERCENTAGE Subscribers: - SubscriptionType: EMAIL Address: !Ref Email
また、特定のEC2やRDSインスタンスの停止、IAMロールの作成など、アラートが発生した際に自動的に実行されるように設定することも可能である。
AWS Budgetsにおけるフォーキャスト
フォーキャストにより、通知の設定方法について第二の選択肢ができました。例えば、毎月のBudgetが70%に達したときに警告を発するように、実際の支出を設定することができます。フォーキャストを使って、120%などのオーバーランのフォーキャストに基づいたアラートを望むこともできます。最大5つの通知をサポートする同じBudgetは、両方の種類のアラートに使用することができます。すべてのフォーキャストと同様に、基礎となるアルゴリズムには何らかのインテリジェンスがありますが、それはあくまでお客様の過去の使用パターンに基づくものであり、不正確である可能性があります。フォーキャスト警告は、すでに十分な消費データ(約5週間分)がない限り、全く発せられません。
- Notification: ComparisonOperator: GREATER_THAN NotificationType: FORECASTED Threshold: 100 ThresholdType: PERCENTAGE Subscribers: - SubscriptionType: EMAIL Address: !Ref Email
CloudFormation
私はBudgetを設定するためにCloudFormationを展開する簡単なを作成しました、このテンプレートは、2つの Actual Threshold通知アラートと1つの "フォーキャスト"通知Budgetアラートで構成されています、する必要があるすべては希望の値を入力してテンプレートを起動していることです。
AWSTemplateFormatVersion: "2010-09-09" Description: Creates an AWS budget and notifies you when you exceed thresholds. Parameters: Name: Description: Name Type: String Default: Budget Amount: Description: Total budget for the month Type: Number Currency: Description: Currency Type: String Default: USD FirstThreshold: Description: Percentage of first threshold Type: Number Default: 75 SecondThreshold: Description: Percentage of second threshold Type: Number Default: 99 Email: Description: Email for notification Type: String Metadata: AWS::CloudFormation::Interface: ParameterGroups: - Parameters: - Name - Amount - Currency - FirstThreshold - SecondThreshold - Email Resources: MonthlyBudget: Type: AWS::Budgets::Budget Properties: Budget: BudgetName: !Ref Name BudgetLimit: Amount: !Ref Amount Unit: !Ref Currency TimeUnit: MONTHLY BudgetType: COST # You can add upto 5 notifications at your prefered level. NotificationsWithSubscribers: - Notification: ComparisonOperator: GREATER_THAN NotificationType: ACTUAL Threshold: !Ref FirstThreshold ThresholdType: PERCENTAGE Subscribers: - SubscriptionType: EMAIL Address: !Ref Email - Notification: ComparisonOperator: GREATER_THAN NotificationType: ACTUAL Threshold: !Ref SecondThreshold ThresholdType: PERCENTAGE Subscribers: - SubscriptionType: EMAIL Address: !Ref Email - Notification: ComparisonOperator: GREATER_THAN NotificationType: FORECASTED Threshold: 100 ThresholdType: PERCENTAGE Subscribers: - SubscriptionType: EMAIL Address: !Ref Email
Budget Reports
Budgetが設定されると、Budget報告メールが定期的に送信されます。
AWSはこれらのレポートを基本的なものにとどめており、レポート内で以下の内容を変更することができます:
- どのBudgetが対象ですか?(複数記載可).
- レポートを提供する頻度 - 毎日、毎週、または毎月。
- メールアドレスのリスト : レポートを受け取るべき人
まとめ
AWSバジェットは、課金データを使用して、さまざまなFinOpsタスクをサポートします。AWSのコストを理解し、最適化し、コントロールし、クラウドからより良い価値を得るためにBudgetを使用することができます。
レファレンス
https://docs.aws.amazon.com/cost-management/latest/userguide/budgets-create.html https://docs.aws.amazon.com/cost-management/latest/userguide/budgets-create-filters.html https://docs.aws.amazon.com/ja_jp/AWSCloudFormation/latest/UserGuide/aws-resource-budgets-budget.html